package com.lxl.workbench.service;

import com.lxl.workbench.entity.Book;
import java.sql.SQLException;
import java.util.List;

/**
 * @author 北上寻海
 */
public interface BookService {

    /**
     *
     * 根据传过来的条件查询，可能是一个或多个，也可能没有
     * @param bookName 书名
     * @param bookType 所属类型
     * @param bookAuthor 书的作者
     * @return 用于转化ResultSet的Result
     * @throws SQLException 数据库异常
     */
    List<Book> selectBookByCondition(String bookName, String bookType, String bookAuthor) throws SQLException;


    /**
     *
     * 先把所有的剩余件数查出来先，然后计算，在更新
     * @param ids id数组
     * @return books
     * @throws SQLException 数据库异常
     */
    List<Book> selectBookByIds(String [] ids) throws SQLException;


    /**
     * 更新书本数量（借入书本）
     * @param ids  要更新的书本的ids
     * @param remainingArray 操作之后的书本的件数，update的条件
     * @return int
     * @throws SQLException 数据库异常
     */
    int updateBookByIds (String [] ids,int [] remainingArray) throws SQLException;

    /**
     * 添加书本
     * @param book 要添加的书本对象的信息
     * @return int
     * @throws SQLException 数据库异常
     */
    int insertBook(Book book) throws SQLException;

    /**
     * 修改书本
     * @param book 要修该书本的book对象的信息
     * @return  int
     * @throws SQLException 数据库异常
     */
    int updateBookByCondition(Book book) throws SQLException;

    /**
     * 书目管理员删除书，根据选中的ids去删
     * @param delIds 选中的id数组
     * @return 影响条数
     * @throws SQLException SQL异常
     */
    int deleteBookByIds(String [] delIds) throws SQLException;


}
